package com.speed.util.ecxel;

import java.math.BigDecimal;

import org.apache.poi.ss.usermodel.Cell;
import org.apache.poi.ss.usermodel.Row;

import com.speed.util.StringUtils;

/**
 * 工厂类 :生产 不同的 ImportTempData
 * 
 * @author ZhouChiJian
 *
 */
public enum ImportDataFactory {

	INSTANCE;

	/**
	 * 传入 键值 和 对应的 excel 列号即可对应提取数据
	 * 
	 * @param dataKey
	 * @param colunm
	 * @return
	 */
	public ImportTempData createImportTempData(final String dataKey, final Integer colunm) {
		ImportTempData temp = new ImportTempData() {
			@Override
			public void inputData(Row row, TempData tempData) {
				Cell cell = row.getCell(colunm);
				if (cell == null) {
					tempData.setData(dataKey, "");
					return;
				}
				int cellType = cell.getCellType();
				if (Cell.CELL_TYPE_STRING == cellType) {
					String data = cell.getStringCellValue();
					tempData.setData(dataKey, StringUtils.replaceBlank(data));
				} else if (Cell.CELL_TYPE_NUMERIC == cellType) {
					Double data = cell.getNumericCellValue();
					tempData.setData(dataKey, BigDecimal.valueOf(data).toPlainString());
				}
			}
		};
		return temp;
	}
}
